#ifndef __W25Q16__H
#define __W25Q16__H
#define SPI1_NSS    GPIO_Pin_4
#define W25Q16_CS_H() 		GPIO_SetBits(GPIOA,SPI1_NSS)	//片选取消
#define W25Q16_CS_L() 		GPIO_ResetBits(GPIOA,SPI1_NSS)	//片选选中
#define W25Q16_PAGE_SIZE	256		//页大小256字节
#define W25Q16_SECTOR_SIZE	4096	//扇区大小4096字节
#define W25Q16_START_ADDR	(uint32_t )0x000000		//起始地址
#define W25Q16_END_ADDR		(uint32_t )0x0FFFFF		//结束地址
//状态位
#define W25Q16_BUSY			0x01	//忙位
#define W25Q16_WEL			0x02	//写保护位
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned char uint8_t;

uint16_t W25Q16_GetID(void);
void W25Q16_SectorErase(uint32_t addr);
void W25Q16_BlockErase(uint32_t addr);
void W25Q16_WriteData(uint32_t addr,uint8_t *data,uint32_t size);
void W25Q16_ReadData(uint32_t addr,uint8_t *data,uint16_t size);


#endif